// Fill out your copyright notice in the Description page of Project Settings.
#include "Frame/BaseFactory.h"
#include "Frame/EditorWindowBlueprint.h"

#define LOCTEXT_NAMESPACE "BaseFactory"

UBaseFactory::UBaseFactory(const class FObjectInitializer& ObjectInitializer): Super(ObjectInitializer)
{
	bCreateNew = true; // 当bCreateNew或者ShouldShowInNewMenu方法返回true时，该资源可以通过资源菜单创建
	bEditAfterNew = true; // 源码注解是创建资源后，打开关联编辑器，但没有发现有什么实际作用，后期发现作用后再补充    
	SupportedClass = UEditorWindowBlueprint::StaticClass();
	//这里注意一下，就是UE4自己实现的一些工厂类中，SupportedClass的类是资源蓝图类，而ParentClass（的子类）才是资源实例类。一个是资源蓝图类，一个是真正游戏中实例化的类。注意区分。
}

//返回对象，这里一般返回SupportedClass的实例对象。当创建完资源并确认命名后，该方法将会被执行。
UObject* UBaseFactory::FactoryCreateNew(UClass* Class, UObject* InParent, FName Name, EObjectFlags Flags,
                                        UObject* Context, FFeedbackContext* Warn)
{
	UEditorWindowBlueprint* Temp = NewObject<UEditorWindowBlueprint>(InParent, Class, Name, Flags);
	return Temp;
}

#undef LOCTEXT_NAMESPACE
